﻿using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using SAPPDI.Entitys;
using TestImpresion.Clases.Comunes;

namespace TestImpresion.Controles
{
    public partial class DinamicInteriores : UserControl
    {

        private readonly DependencyProperty _pliegoProperty =
      DependencyProperty.Register("PliegoSeleccionado", typeof(Pliego), typeof(DinamicInteriores), new PropertyMetadata(new Pliego(1, 1)));

        [System.ComponentModel.Category("User properties")]
        [System.ComponentModel.Description("User Datasource")]
        public Pliego PliegoSeleccionado
        {
            get { return (Pliego)GetValue(_pliegoProperty); }
            set
            {
                SetValue(_pliegoProperty, value);
                this.UpdateSize();
            }
        }

        private readonly DependencyProperty _sizePaginaProperty =
DependencyProperty.Register("TamañoPagina", typeof(SizePagina), typeof(DinamicInteriores), new PropertyMetadata(new SizePagina()));

        [System.ComponentModel.Category("User properties")]
        [System.ComponentModel.Description("User TamañoPagina")]
        public SizePagina TamañoPagina
        {
            get { return (SizePagina)GetValue(_sizePaginaProperty); }
            set
            {
                SetValue(_sizePaginaProperty, value);
                this.UpdateSize();
            }
        }

        public DinamicInteriores()
        {
            InitializeComponent();
            PliegoSeleccionado = new Pliego(1, 1);
            TamañoPagina = SizePagina.Entero;

        }
        private void ToggleButton_OnChecked(object sender, RoutedEventArgs e)
        {
            var toogle = (ToggleButton)sender;
            Utiles.UncheckElementos(toogle, this.LayoutRoot.Children);
            this.SetSizePagina(toogle.Name);
        }

        private void SetSizePagina(string size)
        {
            switch (size)
            {
                case "S1_32":
                    this.TamañoPagina = SizePagina.S1_32;
                    break;
                case "S1_16":
                    this.TamañoPagina = SizePagina.S1_16;
                    break;
                case "S1_8":
                    this.TamañoPagina = SizePagina.S1_8;
                    break;
                case "S1_4":
                    this.TamañoPagina = SizePagina.S1_4;
                    break;
                case "S1_2":
                    this.TamañoPagina = SizePagina.S1_2;
                    break;
            }
            this.UpdateSize();
        }

        private void UpdateSize()
        {
            this.PliegoSeleccionado.DividePliego(this.TamañoPagina);

            this.TxtInfoMedidas.Content = this.PliegoSeleccionado.ToString();
        }

        private void Rdbutton_OnChecked(object sender, RoutedEventArgs e)
        {
            var radioBtn = (RadioButton)sender;

            switch (radioBtn.Name)
            {
                case "RdbCarta":
                    PliegoSeleccionado = new PliegoCarta();
                    break;
                case "RdbOficio":
                    PliegoSeleccionado = new PliegoOficio();
                    break;
                case "RdbCartaRebasado":
                    PliegoSeleccionado = new PliegoCartaRebasado();
                    break;
            }
            this.UpdateSize();
        }
    }
}
